PM2 একটি পপুলার এবং শক্তিশালী process manager যা Node.js অ্যাপ্লিকেশন পরিচালনা, মনিটরিং এবং ডেপ্লয়মেন্টের জন্য ব্যবহৃত হয়। PM2 আপনাকে অ্যাপ্লিকেশনটি স্কেল করতে, অ্যাপ্লিকেশন ক্র্যাশ হলে তা স্বয়ংক্রিয়ভাবে রিস্টার্ট করতে এবং লগ ফাইল ম্যানেজমেন্ট করতে সহায়তা করে।
এখানে PM2 এর সাহায্যে Node.js অ্যাপ্লিকেশন ব্যবস্থাপনা (application management) করার পদ্ধতি আলোচনা করা হলো।
১. PM2 ইনস্টলেশন
প্রথমে PM2 ইনস্টল করতে হবে। এটি গ্লোবালি ইনস্টল করা যায়, যাতে আপনি যেকোনো ফোল্ডার বা প্রজেক্টে কমান্ড ব্যবহার করতে পারেন।
npm install pm2@latest -gএটি PM2 এর সর্বশেষ সংস্করণ ইনস্টল করবে।
২. PM2 দিয়ে Node.js অ্যাপ্লিকেশন চালানো
PM2 ব্যবহার করে আপনার Node.js অ্যাপ্লিকেশন খুব সহজেই চালানো যায়। ধরুন আপনার অ্যাপ্লিকেশনটির ফাইলের নাম **app.js**।
অ্যাপ্লিকেশন চালানোর জন্য:
pm2 start app.jsএটি app.js ফাইলটি চালু করবে এবং PM2 এর মাধ্যমে তাকে মনিটর করবে। এখন অ্যাপ্লিকেশনটি ব্যাকগ্রাউন্ডে চলবে এবং আপনি এর প্রোগ্রাম বা সার্ভার কনসোলটি বন্ধ করলে এটি থেমে যাবে না।
অ্যাপ্লিকেশন শুরু করার পর:
pm2 listএটি আপনার চলমান সব অ্যাপ্লিকেশন দেখাবে, তাদের স্ট্যাটাস, পিডি, এবং অন্যান্য তথ্যসহ।
৩. PM2 দিয়ে অ্যাপ্লিকেশন রিস্টার্ট, স্টপ এবং রিলোড করা
PM2 দিয়ে আপনি অ্যাপ্লিকেশন রিস্টার্ট, স্টপ এবং রিলোড করতে পারেন সহজেই:
অ্যাপ্লিকেশন রিস্টার্ট:
pm2 restart app.jsএটি অ্যাপ্লিকেশনটি রিস্টার্ট করবে। এটি মূলত কোনো কোড পরিবর্তনের পর অ্যাপ্লিকেশনটি রিলোড করার জন্য ব্যবহৃত হয়।
অ্যাপ্লিকেশন স্টপ:
pm2 stop app.jsএটি চলমান অ্যাপ্লিকেশন বন্ধ করবে।
অ্যাপ্লিকেশন রিলোড:
pm2 reload app.jsএটি অ্যাপ্লিকেশনটি রিলোড করবে, তবে কোনো ব্যাঘাত সৃষ্টি না হয়ে চলমান অ্যাপ্লিকেশনটি পুনরায় চালু হবে।
৪. PM2 দিয়ে লগ ম্যানেজমেন্ট
PM2 লগ ম্যানেজমেন্টের জন্য একটি শক্তিশালী টুলস। PM2 আপনি লগগুলোকে মনিটর এবং বিশ্লেষণ করতে সক্ষম।
লগ দেখার জন্য:
pm2 logsএটি আপনার সব অ্যাপ্লিকেশনের লগ দেখাবে।
নির্দিষ্ট অ্যাপ্লিকেশনের লগ দেখতে:
pm2 logs app.jsএটি শুধুমাত্র app.js এর লগ দেখাবে।
লগ ফাইল পরিষ্কার করা:
pm2 flushএটি PM2 দ্বারা সংগ্রহ করা সমস্ত লগ ফাইল পরিষ্কার করে দিবে।
৫. PM2 দিয়ে অ্যাপ্লিকেশন স্কেলিং
PM2 এর সাহায্যে আপনি একাধিক কোরে আপনার Node.js অ্যাপ্লিকেশন স্কেল করতে পারেন। এতে প্রতিটি কোরে একটি নতুন ইন্সট্যান্স চলবে এবং অ্যাপ্লিকেশনটি আরও কার্যকরীভাবে কাজ করবে।
অ্যাপ্লিকেশন স্কেলিং:
pm2 start app.js -i maxএটি অ্যাপ্লিকেশনটিকে আপনার CPU কোরের সংখ্যা অনুযায়ী স্কেল করবে। -i max অর্থ হচ্ছে সর্বাধিক কোর সংখ্যা ব্যবহার করা।
নির্দিষ্ট সংখ্যক ইন্সট্যান্স চালানো:
pm2 start app.js -i 4এটি অ্যাপ্লিকেশনটির ৪টি ইন্সট্যান্স চালাবে।
৬. PM2 দিয়ে অ্যাপ্লিকেশন মনিটরিং
PM2 আপনাকে আপনার অ্যাপ্লিকেশনের পারফরম্যান্স মনিটর করতে সহায়তা করে। আপনি CPU এবং মেমরি ব্যবহার সহ অন্যান্য গুরুত্বপূর্ণ তথ্য দেখতে পারেন।
অ্যাপ্লিকেশন মনিটরিং:
pm2 monitএটি একটি রিয়েল-টাইম মনিটরিং টুল খুলবে, যেখানে আপনি আপনার অ্যাপ্লিকেশনের স্ট্যাটাস, CPU ব্যবহার, মেমরি ব্যবহার এবং আরও অনেক কিছু দেখতে পারবেন।
৭. PM2 দিয়ে অ্যাপ্লিকেশন স্বয়ংক্রিয়ভাবে চালানো
PM2 আপনাকে অ্যাপ্লিকেশন স্বয়ংক্রিয়ভাবে সার্ভারে চালানোর ব্যবস্থা প্রদান করে। বিশেষত, সার্ভার রিস্টার্ট হলে অথবা সার্ভারের রিবুট হওয়ার পরও অ্যাপ্লিকেশনটি চালু থাকবে।
অ্যাপ্লিকেশনকে রিবুটের পর চালু রাখা:
pm2 startupএটি আপনার সিস্টেমের জন্য উপযুক্ত স্টার্টআপ স্ক্রিপ্ট তৈরি করবে। এই স্ক্রিপ্টটি আপনার সার্ভারের রিবুট হওয়ার পর PM2 এর মাধ্যমে অ্যাপ্লিকেশনটি পুনরায় চালু করবে।
স্টার্টআপ স্ক্রিপ্ট সংরক্ষণ:
pm2 saveএটি আপনার চলমান অ্যাপ্লিকেশন কনফিগারেশন সংরক্ষণ করবে, যাতে সিস্টেম রিবুট হলে সমস্ত অ্যাপ্লিকেশন পুনরায় চালু হয়।
৮. PM2 Configuration File (ecosystem.config.js)
PM2 একটি কনফিগারেশন ফাইল (ecosystem.config.js) সমর্থন করে, যা দিয়ে আপনি একাধিক অ্যাপ্লিকেশন এবং পরিবেশ কনফিগারেশন সেট করতে পারেন।
উদাহরণ: ecosystem.config.js
module.exports = {
apps : [{
name: 'my-app',
script: './app.js',
instances: 'max', // CPU কোর অনুযায়ী স্কেলিং
exec_mode: 'cluster', // ক্লাস্টার মোডে চলবে
env: {
NODE_ENV: 'development'
},
env_production: {
NODE_ENV: 'production'
}
}]
};এটি একাধিক অ্যাপ্লিকেশন এবং কনফিগারেশন নির্ধারণ করতে সহায়তা করবে।
PM2 কনফিগারেশন ফাইল চালানো:
pm2 start ecosystem.config.jsসারাংশ
- PM2 হল একটি শক্তিশালী প্রক্রিয়া ম্যানেজার যা Node.js অ্যাপ্লিকেশন পরিচালনা করতে ব্যবহৃত হয়।
- PM2 দিয়ে আপনি আপনার অ্যাপ্লিকেশনকে স্কেল করতে পারেন, লগ ম্যানেজ করতে পারেন, এবং স্বয়ংক্রিয়ভাবে রিস্টার্ট করার ব্যবস্থা করতে পারেন।
- PM2 দিয়ে আপনি আপনার অ্যাপ্লিকেশনকে মনিটর করতে পারবেন এবং এর পারফরম্যান্স ট্র্যাক করতে পারবেন।
- PM2 এর
ecosystem.config.jsফাইল ব্যবহারের মাধ্যমে একাধিক অ্যাপ্লিকেশন এবং কনফিগারেশন সেট করা সম্ভব।
PM2 একটি কার্যকরী এবং নির্ভরযোগ্য টুল যা Node.js অ্যাপ্লিকেশনের প্রোডাকশন ব্যবস্থাপনা এবং স্কেলিংয়ের জন্য ব্যবহৃত হয়।
Read more